Method for measuring processing delays of voice-over IP devices

ABSTRACT

A system and method for recording analog signals exchanged between a telephone device and a VoIP device, capturing packets exchanged between the VoIP device and an IP network, determining analog time values corresponding to analog characteristics of the analog signals, determining digital time values corresponding to digital characteristics of the packets, determining a common reference time for the analog time values and digital time values and determining a processing delay based on the analog time values and the digital time values.

PRIORITY CLAIM AND INCORPORATION BY REFERENCE

This application is a Continuation application of U.S. patent application Ser. No. 13/959,366 filed on Aug. 5, 2013 entitled “Method for Measuring Processing Delays of Voice-Over IP Devices”, which is a Continuation application of U.S. patent application Ser. No. 12/329,172 filed on Dec. 5, 2008 entitled “Method for Measuring Processing Delays of Voice-Over IP Devices”, now U.S. Pat. No. 8,503,311. The entire disclosure of these prior applications are considered as being part of the disclosure of the accompanying application and hereby expressly incorporated by reference herein.

BACKGROUND

Voice-over Internet Protocol (VoIP) is a protocol optimized for the transmission of voice through the Internet or other packet-switched networks. VoIP allows users to use regular telephone networks anywhere through any Internet service provider. VoIP systems carry telephony signals as digital audio encapsulated in a data-packet stream over IP by converting analog audio signals to digital data that can be transmitted over the Internet. VoIP devices (e.g., terminal adapters, SIP phones, Media Gateways) are able to convert analog signals to digital signals encapsulated in the packets to be transmitted over the Internet.

VoIP may experience some time delays as a result of physical distance, the number of router hops, encryption and voice/data conversion. A typical packet will be forwarded over many links via many gateways, each of which will not begin to forward the packet until it has been completely received. Processing delays are incurred while a gateway determines what to do with a newly received packet. Small delays are generally not noticeable by users, but larger delays may result in a degradation of voice quality. Thus, it is desirable to measure processing delays associated with VoIP devices to determine whether processing delays added by VoIP devices are acceptable.

However, current measuring techniques use different tools to measure VoIP performance in the analog and IP domains, which makes it difficult to determine the time it takes for a VoIP device to convert an analog event into an IP event and vice versa. Thus, a method for accurately determining processing delays added by VoIP devices to end-to-end transmission delays and post-dialing delays may be beneficial to determine whether they are degrading the end-to-end performance of VoIP calls. Any company providing VoIP services or developing VoIP products may use the technique to assess the company's equipment performance.

SUMMARY

A method for recording analog signals exchanged between a telephone device and a VoIP device, capturing packets exchanged between the VoIP device and an IP network, determining analog time values corresponding to analog characteristics of the analog signals, determining digital time values corresponding to digital characteristics of the packets, determining a common reference time for the analog time values and digital time values and determining a processing delay based on the analog time values and the digital time values.

A system measuring a processing delay of a VoIP device having a recording device recording analog signals exchanged between a telephone device and the VoIP device, a packet trace device capturing packets transmitted between the VoIP device and an IP network and a processor determining analog time values corresponding to analog characteristics of the analog signals, determining digital time values corresponding to digital characteristics of the packets, determining a common reference time for the analog time values and digital time values and determining a processing delay based on the analog time values and the digital time values.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a system for measuring processing delays of VoIP devices according to an exemplary embodiment of the present invention.

FIG. 2 shows a method for measuring processing delays of VoIP devices according to an exemplary embodiment of the present invention.

FIG. 3 shows a screen view of an exemplary analog recording according to an exemplary system and method of the present invention.

FIG. 4A shows a first screen view of an exemplary packet trace according to an exemplary system and method of the present invention.

FIG. 4B shows a second screen view of the exemplary packet trace of FIG. 4A.

FIG. 4C shows a third screen view of the exemplary packet trace of FIG. 4A.

DETAILED DESCRIPTION

The exemplary embodiments may be further understood with reference to the following description and the appended drawings, wherein like elements are referred to with the same reference numerals. The exemplary embodiments relate to a system and method for measuring processing delays associated with VoIP devices. It should be noted that although exemplary embodiments of the present invention show and/or describe measuring the processing delay of a terminal adapter, the system and method of the present invention may be used to measure processing delays of any VoIP device such as, for example, SIP phones, Media Gateways, etc.

As shown in FIG. 1, a system 100 according to an exemplary embodiment of the present invention comprises a recording device 104 and a packet trace tool 108. The recording device 104 is connectable between a telephone network device 110 and a VoIP device 112 via a telephone tap 102 such that the recording device 104 may record an analog signal that is transmitted between the telephone network device 110 and the VoIP device 112. The packet trace tool 108 is connectable between the VoIP device 112 and an IP Network 114 via a hub 106 such that the packet trace tool 108 may take a packet capture of packets transmitted between the VoIP device 112 and the IP Network 114. In the example shown, the telephone network device 110 is a standard telephone while the VoIP device 112 is a terminal adapter. It will be understood by those of skill in the art, however, that any telephone network device 110 and VoIP devices 112 may be used in the present invention. For example, the telephone network device 110 may also be a network switch, a PBX or other similar device. The VoIP device 112 may also be a SIP phone, a Media Gateway or other similar device.

The recording device 104 may be a personal computer, server or other processing arrangement loaded with an audio recording software such as Cool Edit. Once initiated, the recording device 104 records the analog signal transmitted between the telephone network device 110 and the VoIP device 112. The recording device 104 may record the analog signal as a digital soundwave. The recording device 104 is able to access the signal to/from the telephone network device 110 via the telephone tap 102, which monitors the connection between the telephone network device 110 and the VoIP device 112. It will be understood by those of skill in the art that the recording device 104 may include a memory, a display and/or an audio playback device such that the recordings of the analog signal may be stored and/or displayed or played back by a user.

The packet trace tool 108 may be a personal computer, a server or other processing arrangement that is loaded with a packet analyzer such as Wireshark. The packet trace tool 108 allows a user to see all traffic being passed to/from the IP network 114 such that packets being transmitted therebetween may be recorded in a packet capture. As data streams flow across the network 114, the packet trace tool 108 captures each packet and eventually decodes and analyzes its contents. The packet trace tool 108 is able to access the packets passing between the VoIP device 112 and the IP Network 114 via the hub 106, which permits connection of the packet trace tool 108 to both the VoIP device 112 and the IP network 114.

Although the recording device 104 and the packet trace tool 108 are shown as two separate devices, it will understood by those of skill in the art that the recording device 104 and the packet trace tool 108 may be a single device. For example, the recording device 104 and the packet trace tool 108 may be a single personal computer, server or other processing arrangement loaded with both the audio recording software and the packet analysis tool. It will also be understood by those of skill in the art that the recorded analog signals and the recorded packet capture may be transmitted to a processor (not shown) for determining time values that may be used to calculate a processing delay. The processor may be a separate personal computer, server or other processing arrangement connected to both the recording device 104 and the processing tool 108 such that the recorded analog signal and the recorded packet capture may be analyzed. Alternatively, the processor may be a component of one of the recording device 104 and/or the packet trace tool 108.

FIG. 2 shows an exemplary method 200 according to the present invention, using the system 100, as described above. The method 200 comprises a first step 210 in which the recording device 104 and the packet capture tool 108 are initiated. Upon initiation, the recording device 104 will record all analog signals transmitted between the telephone network device 110 and the VoIP device 112 in an analog recording and the packet trace tool 108 will capture all the data transmitted between the VoIP device 112 and the IP Network 114 in a packet capture. Once the recording device 104 and the packet capture tool 108 have been initiated, a telephone call may be initiated by a first user via the telephone network device 110 (e.g., a telephone) in a step 220. The telephone call is initiated by dialing digits on the telephone network device 110. These dialed digits may be converted to digital packets that are sent via a signaling protocol such as Session Initiation Protocol (SIP). A SIP Invite is sent to a second user, via the IP Network 114, at the telephone number being dialed to invite the second user to establish a voice session. The SIP Invite is transmitted across the network and causes a ringing signal to be sent to the second user. Once ringing begins at a telephone network device of the second user, a digital packet of the ringing signal is transmitted back to the VoIP device 112 to be transmitted to the telephone network device 110 so that the first user may also hear a ringing signal, which would indicate that the call has been connected.

When ringing is heard by the second user, the second user may accept the first user's invitation for a voice session, in a step 230. The invitation may be accepted by answering the phone call upon hearing the phone ringing. Once the voice session has been established, a speech signal may be sent from the telephone network device 110 to the VoIP device 112, in a step 240. The speech signal may be a tone, speech or any other analog signal sent by the first user via the telephone network device 110. The VoIP device 112 then converts the analog speech signal to a packet that may be transmitted using a format such as Real-time Transfer Protocol (RTP). The speech signal may eventually be used to relate times that are recorded by the recording device 104 and the packet trace tool 108. Once the speech signal has been transmitted, the recording device 104 and the packet trace tool 108 may be stopped, in a step 250.

It will be understood by those of skill in the art that the analog recording of the recording device 104 and the packet capture of the packet tracing tool 108 may be saved to a memory of each of the devices 104, 108 and/or displayed on a display of each of the devices 104, 108. Alternatively, the analog recoding and/or the packet capture may be stored and/or displayed on a separate memory and/or display.

In a step 260, the analog recordings of the recording device 104 are evaluated to identify a first time T₁, a second time T₂ and a third time T₃ and the packet trace is evaluated to determined a first time S₁, a second time S₂ and a third time S₃. The times T₁, T₂ and T₃ may be referred to herein as “analog time values” to indicate the times have been derived from the analog signal. Those skilled in the art will understand that other time values may also be derived from the analog signal and these would also be referred to as analog time values. Similarly, S₁, S₂ and S₃ may be referred to as “digital time values” to indicate the times have been derived from the packet trace. For the analog recordings, the first time T₁ corresponds to a time in which a final Dual Tone Multi-Frequency (DTMF) digit ended, in other words, when the last digit of the telephone number that is being dialed has been entered. The second time T₂ corresponds to a time when the ringing signal starts. The third time T₃ corresponds to a time when the transmitted signal starts. For the packet trace, the first time S₁ corresponds to a time that the SIP Invite was sent. The second time S₂ corresponds to a time when the ringing signal starts. The RTP packets transmitted from the IP Network 114 to the VoIP device 112 may be evaluated to find when the ringing signal starts. The third time S₃ corresponds to the time when the transmitted signal starts. The RTP packets transmitted from the VoIP device 112 to the IP Network 114 may be evaluated to find when the speech signal starts.

In a step 270, the time values identified in the step 260 may then be used to determine a processing time of the VoIP device 112 to create the SIP Invite packet, D_(SIP), and a processing time that it takes the VoIP device 112 to convert an RTP packet to an analog signal that is transmitted to the telephone network device 110 in the step 240, D_(RTPRCV). The processing delays D_(SIP) and D_(RTPRCV) may be determined by relating the time values T₁, T₂, T₃ of the analog recording to the time values S₁, S₂, S₃ of the packet capture. The analog recording and the packet trace may be related using the following equations: T ₁ +D _(SIP) =S ₁+Δ  (1) T ₂ =S ₂ +D _(RTPRCV)+Δ  (2) T ₃ +D _(RTPXMT) =S ₃+Δ  (3) Where, Δ is a difference between when the analog recording and packet captures were started, D_(SIP) is the processing time used by the VoIP device 112 to create the SIP Invite packet, D_(RTPXMT) is a processing time it takes the VoIP device 112 to convert the speech signal received from the phone into the RTP packet and D_(RTPRCV) is the processing time the VoIP device 112 takes to convert the RTP packet into the analog signal that is transmitted.

Using the values of T₁, T₂, T₃, S₁, S₂ and S₃ that are identified by evaluating the analog recording and the packet capture in the equations disclosed above, processing delays of the VoIP device 112 are calculated in the step 270. Specifically, it is possible to calculate D_(RTPRCV), the time it takes the VoIP device 112 to convert an RTP packet into the analog signal, and D_(SIP), the time it takes the VoIP device 112 to create the SIP Invite packet. The value of D_(RTPXMT) may be easily determined within a few ms. For example, if the VoIP device 112 of the system 100 is a terminal adapter that is using 20 ms RTP packets and a G.711 codec, D_(RTPXMT) may be estimated to be approximately 21 ms. Additionally, Δ may be easily eliminated by taking a difference between the first equation and the third equation and a difference between the second equation and the third equation, since the value of D_(RTPXMT), of the third equation, is known.

The difference of the first equation and the third equation would result in an equation that would determine a value of D_(SIP) as follows: D _(SIP)=(T ₃ −T ₁)−(S ₃ −S ₁)+21 ms. The difference of the second equation and the third equation would result in an equation that would determine a value of D_(RTPRCV) as follows: D _(RTPRCV)=(S ₃ −S ₂)−(T ₃ −T ₂)−21 ms. Thus, using these equations, the time it takes the VoIP device 112 to convert an RTP packet into the analog signal, D_(RTPRCV), and the time it takes the VoIP device 112 to create the SIP Invite packet, D_(SIP), may be determined accordingly.

For example, FIG. 3 shows a screenshot of an exemplary analog recording according to the present invention. In the example shown, the last DTMF digit was dialed at approximately 6 seconds, the ringing signal starts at approximately 13 seconds and the transmitted signal starts at approximately 14.4 seconds. Since the equations above are measures in milliseconds, the values of T₁=6000 ms, T₂=13000 ms and T₃=14200 ms may be used in the above equations.

FIGS. 4A-4C show a series of screenshots of an exemplary packet capture using Wireshark. As shown in FIG. 4A, packet no. 44, a SIP Invite is sent from the telephone network device 110 to the VoIP device 112 at approximately 56.8 seconds. Thus, S₁=56800 ms. The values of S₂ and S₃ may be determined by evaluating the payloads of the transmitted and received RTP packets in the capture. When no signal is being transmitted, the payload shows a repetitive sequence of hexadecimal values, which indicates that the channel is idle or that there is a low level noise present in the channel. As shown in FIG. 4B, the payload begins to transition from a repeating pattern to a varying pattern, indicating that a signal is being transmitted. Based on this assessment of the payload, it can be determined that packet no. 631 shows the first RTP packet of the ringing signal that is sent from the VoIP device 112 to the telephone network device 110 at approximately 63.6 seconds. Evaluating the payload of FIG. 4C in a similar manner, it may be determined that packet no. 796 shows the RTP packet being transmitted from the telephone network device 110 to the VoIP device 112 at approximately 65.2 seconds. Thus, the values of S₂=63600 ms and S₃=65200 ms may be used in the equations above. Alternatively, it will be understood by those of skill in the art that the values of S₂ and S₃ may be determined by converting the RTP packets' payloads to an audio file and using a recording device such as Cooledit to determine when audio begins in each direction.

Using the exemplary time values of FIGS. 3 and 4A-4C we may calculate D_(SIP) and D_(RTPXMT) as follows: D _(SIP)=(T ₃ −T ₁)−(S ₃ −S ₁)+21 ms D _(SIP)=(14400 ms−6000 ms)−(65200 ms−56800 ms)+21 ms D _(SIP)=8400 ms−8400 ms+21 ms D _(SIP)=21 ms D _(RTPRCV)−(S ₃ −S ₂)−(T ₃ −T ₂)−21 ms D _(RTPRCV)=(65200 ms−63600 ms)−(14400 ms−13000 ms)−21 ms D _(RTPRCV)=1600 ms−1400 ms−21 ms D _(RTPRCV)=179 ms Thus, based on the exemplary values determined by evaluating the packet capture and the analog recording, the values of D₅₁₂, the processing time used by the VoIP device 112 to create the SIP Invite, and the D_(RTPXMT), the processing time it takes to convert the signal received from the telephone network device 110 to the RTP packet, may be determined. It should be noted, however, that the above values are exemplary values only.

As can be seen from the above examples, the exemplary embodiments allow for the use of separate capture devices in the analog domain (e.g., the analog recording device) and the IP domain (e.g., the packet capture device) to take advantage of the functionality of these devices. However, the exemplary embodiments call for a common reference time for a signal that is measured by both devices to create a relationship in the domain between the measurements of both devices, thereby allowing overall processing times to be related and determined.

It will be apparent to those skilled in the art that various modifications and variations may be made in the structure and methodology of the present invention, without departing from the spirit or scope of the invention. Thus, it is intended that the present invention cover the modifications and variations of this invention provided that they come within the scope of the appended claims and their equivalents. 

What is claimed is:
 1. A method, comprising: determining analog time values corresponding to analog characteristics of analog signals; determining digital time values corresponding to digital characteristics of packets, wherein the digital characteristics include a Session Initiation Protocol (“SIP”) invite packet; and determining a processing delay based on a difference between an analog time difference and a digital time difference.
 2. The method of claim 1, wherein the analog time difference is determined based on T₃−T₁, wherein T₁ is a first analog time value of a first analog characteristic corresponding to when a final digit is dialed from a telephone device and T₃ is a second analog time value of a second analog characteristic corresponding to when the telephone device starts transmitting a first speech signal.
 3. The method of claim 2, wherein the digital time difference is determined based on S₃−S₁, wherein S₁ is a first digital time value of a first digital characteristic corresponding to when the SIP invite packet was sent by a Voice-over Internet Protocol (“VoIP”) device and S₃ is a second digital time value of a second digital characteristic corresponding to when the VoIP device starts transmitting a second speech signal.
 4. The method of claim 3, wherein T₁ is determined by the formula: T ₁ =S ₁ +Δ−D _(SIP), wherein; D_(SIP) is the processing time used by the VoIP device to create the SIP Invite Packet; and Δ is a difference between; a start of a recording of the analog signals exchanged between the telephone device and the VoIP device; and a capturing of packets exchanged between the VoIP device and an Internet Protocol (“IP”) network.
 5. The method of claim 4, wherein T₂ is determined by the formula: T ₂ =S ₂ +Δ+D _(RTPRCV), wherein T₂ corresponds to the analog characteristic of a start of a ringing, S₂ corresponds to the digital characteristic of a start of a ringing, and D_(RTPRCV) is a processing time the VoIP device takes to convert a Real-Time Transfer Protocol packet into the analog signal being transmitted.
 6. The method of claim 4, wherein T₃ is determined by the formula: T ₃ =S ₃ +Δ−D _(RTPXMT), wherein D_(RTPXMT) is a processing time it takes the VoIP device to convert the first speech signal received from the telephone device into the Real-Time Transfer Protocol packet.
 7. The method of claim 6, wherein D_(RTPXMT) is approximately 21 ms.
 8. The method of claim 3, wherein the VoIP device is a terminal adapter.
 9. The method of claim 1, wherein the analog characteristics include one of a final Dual Tone Multi-Frequency digit of a dialed telephone number, a start of a ringing and a start of a transmitted signal.
 10. The method of claim 1, wherein the digital characteristics further include a start of a ringing and a start of a transmitted signal.
 11. The method of claim 1, wherein the processing delay is determined by adding a processing time of the VoIP device to convert an analog signal into a digital signal to the difference between the analog time difference and the digital time difference.
 12. A device, comprising: a memory that stores a set of instructions; and a processor that executes the set of instructions to cause the processor to perform operations comprising: determining analog time values corresponding to analog characteristics of analog signals, determining digital time values corresponding to digital characteristics of packets, wherein the digital characteristics include a Session Initiation Protocol (“SIP”) invite packet, and determining a processing delay based on a difference between an analog time difference and a digital time difference.
 13. The device of claim 12, wherein the analog time difference is determined based on T₃−T₁, wherein T₁ is a first analog time value of a first analog characteristic corresponding to when a final digit is dialed from a telephone device and T₃ is a second analog time value of a second analog characteristic corresponding to when the telephone device starts transmitting a first speech signal.
 14. The device of claim 13, wherein the digital time difference is determined based on S₃−S₁, wherein S₁ is a first digital time value of a first digital characteristic corresponding to when the SIP invite packet was transmitted by a Voice-over Internet Protocol (“VoIP”) device and S₃ is a second digital time value of a second digital characteristic corresponding to when the VoIP device starts transmitting a second speech signal.
 15. The device of claim 14, wherein T₁ is determined by the formula: T ₁ =S ₁ +Δ−D _(SIP), wherein; D_(SIP) is the processing time used by the VoIP device to create the SIP Invite Packet; and Δ is a difference between; a recording of the analog signals exchanged between the telephone device and the VoIP device; and a capturing of packets exchanged between the VoIP device and an Internet Protocol (“IP”) network.
 16. The device of claim 15, wherein T₂ is determined by the formula: T ₂ =S ₂ +Δ+D _(RTPRCV), wherein T₂ corresponds to the analog characteristic of a start of a ringing, S₂ corresponds to the digital characteristic of a start of a ringing, and D_(RTPRCV) is a processing time the VoIP device takes to convert a Real-Time Transfer Protocol packet into the analog signal being transmitted.
 17. The device of claim 15, wherein T₃ is determined by the formula: T ₃ =S ₃ +Δ−D _(RTPXMT), wherein D_(RTPXMT) a processing time it takes the VoIP device to convert the speech signal received from the phone into the Real-Time Transfer Protocol packet.
 18. The device of claim 12, wherein; the analog characteristics include one of a final Dual Tone Multi-Frequency digit of a dialed telephone number, a start of a ringing and a start of a transmitted signal, and the digital characteristics further include a start of a ringing and a start of a transmitted signal.
 19. A non-transitory computer-readable storage medium including a set of instructions executable by a processor, the set of instructions, when executed by the processor, causing the processor to perform operations comprising: determining analog time values corresponding to analog characteristics of analog signals; determining digital time values corresponding to digital characteristics of packets, wherein the digital characteristics include a Session Initiation Protocol (“SIP”) invite; and determining a processing time of the VoIP terminal adapter to create a SIP invite packet based on a difference between an analog time difference and a digital time difference.
 20. The non-transitory computer-readable storage medium of claim 19, wherein the analog time difference is determined based on T₃−T₁, wherein T₁ is a first analog time value of a first analog characteristic corresponding to when a final digit is dialed from the telephone device and T₃ is a second analog time value of a second analog characteristic corresponding to when a speech signal starts, and wherein the digital time difference is determined based on S₃−S₁, wherein S₁ is a first digital time value of a first digital characteristic corresponding to when the SIP invite packet was sent and S₃ is a second digital time value of a second digital characteristic corresponding to when the speech signal starts. 